1. The Field of the Invention
The present invention relates to communications technology, and more specifically, to mechanisms for using conditional statements in an electronic message to prevent overuse of resources or time involved with delivering the electronic message.
2. Background and Relevant Art
Computing technology has transformed the way we work and play. Modern computer networking technologies and infrastructures allow for different applications and users to communicate data electronically even over vast distances relatively quickly using readily-available computing systems. Such computing systems may include, for example, desktop computers, laptop computers, Personal Digital Assistants (PDAs), digital telephones, or the like.
Currently, computing systems are so interconnected that one computing system is literally capable of communicating with any one of many millions of other computing systems spread throughout the globe. This is useful as we are now able to communicate more readily.
In its most general form, communication between computing systems involves the formation of an electronic message. That electronic message is then sent from the originating computing system to a destination computing system that is capable of interpreting at least some of the electronic message.
There may often be a number of complexities involved with delivering such an electronic message. For example, there may be a number of intermediary message processing computing systems that the electronic message is to be routed through on its way to the destination computing system. A “message processing computing system” or “message processor” is a computing system that is capable of reading or processing the message in some way.
Also, any one or more of the intermediary message processors in the routing path may have the message temporarily sent to yet other computing systems on the side in order to perform services before the intermediary message processor sends the message on to the next message processor. Accordingly, a number of different message processing computing systems may be involved with the delivery of the electronic message.
There are cases in which the amount of resources actually involved with delivering the electronic message is more than was anticipated by the sender. For example, when sending a message, the originating computing system may know of one intermediary message processor (such as a proxy), but may not be aware of how the routing will occur after the electronic message passes through the one known intermediary message processor. In some cases, the electronic message may encounter a high number of different “hops” before being delivered. A “hop” generally refers to the movement of an electronic message from one message processor to another message processor. In some cases, the message may even be stuck in a reoccurring loop due to routing errors. In that case, significant network bandwidth is used without purpose since the electronic message will simply cycle through the reoccurring loop without being delivered.
Some conventional technology attempts to eliminate the reoccurring loop scenario by dropping any message that passes through the same message processor twice. The assumption is that if the electronic message passes through the same message processor twice, then the electronic message must be going through a reoccurring loop. However, there are useful scenarios in which an electronic message may pass through the same message processor twice without necessarily being in a reoccurring loop.
For example, suppose that an intermediary message processor receives an electronic message that lacks something needed for the intermediary to process the electronic message, or lacks something needed to trust a previous message processing computing system node in the routing path. That intermediary message processor may rely on yet another message processor on the side to acquire the lacking information. After processing on the side, the electronic message including the supplemented information may then be returned back to the intermediary for further routing towards the destination computing system.
In this case, the electronic message passes through an intermediary message processor twice, once when the electronic message was originally received by the intermediary, and once when the electronic message was returned with the supplemental information to the intermediary. Conventional technology might therefore drop the electronic message despite the lack of a recurring loop.
In addition to passing through an unacceptably high number of different computing systems on its way from the originating computing system to the destination computing system, there may be an unexpectedly high amount of raw time, or processing resources needed to deliver the message. In some case, the amount of resources taken to deliver the message may be higher than it is worth to deliver the message. Accordingly, what would be advantageous are mechanisms that allow for the reduction (or even elimination) of resources used when delivering a message in cases when delivery without intervention would result in the unacceptably high network resource usage.